import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
import { Icon } from "@iconify/react";

<Tabs groupId="operating-systems" queryString="os">
  <TabItem value="debian" label={<><Icon icon="mdi:debian" style={{ marginRight: "0.25rem" }} height="1.5rem" /> Debian</>} default>
    Debian packages are provided via [<Icon icon="simple-icons:opensuse"/> OpenSUSE Build Service](https://build.opensuse.org/project/show/network:Meshtastic:beta).

    | Feature                  | Status |
    | ------------------------ | ------ |
    | 🔌 [USB Radio][USBRadio] | ✅     |
    | 🕸️ [SPI Radio][SPIRadio] | ✅     |
    | 📱 [MUI][MUI]            | ✅     |
    | 🌐 [Web][WebClient]      | ✅     |

    Supported: `trixie` (13), `bookworm` (12)

    **Install - Debian 13 (`trixie`):**

    ```shell
    [[ "$(. /etc/os-release && echo $NAME)" == Raspbian* ]] && echo "ERROR: Raspberry Pi OS (32-bit) detected, please use the Raspbian repos."
    echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/beta/Debian_13/ /' | sudo tee /etc/apt/sources.list.d/network:Meshtastic:beta.list
    curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:beta/Debian_13/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_Meshtastic_beta.gpg > /dev/null
    sudo apt update
    sudo apt install meshtasticd
    ```

    **Install - Debian 12 (`bookworm`):**

    ```shell
    [[ "$(. /etc/os-release && echo $NAME)" == Raspbian* ]] && echo "ERROR: Raspberry Pi OS (32-bit) detected, please use the Raspbian repos."
    echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/beta/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/network:Meshtastic:beta.list
    curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:beta/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_Meshtastic_beta.gpg > /dev/null
    sudo apt update
    sudo apt install meshtasticd
    ```

    <details>
      <summary>Experimental builds</summary>

      These builds are provided without support, please **do not file issues** relating to Experimental builds.

      Experimental Support: `forky` (testing), `sid` (unstable)

      **Install - Debian 14 (`forky`):**

      ```shell
      echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/beta/Debian_Testing/ /' | sudo tee /etc/apt/sources.list.d/network:Meshtastic:beta.list
      curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:beta/Debian_Testing/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_Meshtastic_beta.gpg > /dev/null
      sudo apt update
      sudo apt install meshtasticd
      ```

      **Install - Debian unstable (`sid`):**

      ```shell
      echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/beta/Debian_Unstable/ /' | sudo tee /etc/apt/sources.list.d/network:Meshtastic:beta.list
      curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:beta/Debian_Unstable/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_Meshtastic_beta.gpg > /dev/null
      sudo apt update
      sudo apt install meshtasticd
      ```
    </details>

  </TabItem>
  <TabItem value="raspbian" label={<><Icon icon="cib:raspberry-pi" style={{ marginRight: "0.25rem" }} height="1.5rem" /> Raspbian (32-bit)</>}>
    Raspbian (Raspberry Pi OS) packages are provided via [<Icon icon="simple-icons:opensuse"/> OpenSUSE Build Service](https://build.opensuse.org/project/show/network:Meshtastic:beta).

    :::warning
    These builds are only suitable for 32-bit *armhf* Raspberry Pi OS installations.

    For **64-bit** Raspberry Pi OS installations, please use the [<Icon icon="mdi:debian"/> Debian](/docs/software/linux/installation/?os=debian) packages.
    :::

    | Feature                  | Status |
    | ------------------------ | ------ |
    | 🔌 [USB Radio][USBRadio] | ✅     |
    | 🕸️ [SPI Radio][SPIRadio] | ✅     |
    | 📱 [MUI][MUI]            | ✅     |
    | 🌐 [Web][WebClient]      | ✅     |

    Supported: `trixie` (13), `bookworm` (12)

    **Install - Raspbian 13 (`trixie`):**

    ```shell
    [[ "$(. /etc/os-release && echo $NAME)" != Raspbian* ]] && echo "ERROR: Raspberry Pi OS (32-bit) not detected, please use the Debian repos."
    echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/beta/Raspbian_13/ /' | sudo tee /etc/apt/sources.list.d/network:Meshtastic:beta.list
    curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:beta/Raspbian_13/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_Meshtastic_beta.gpg > /dev/null
    sudo apt update
    sudo apt install meshtasticd
    ```

    **Install - Raspbian 12 (`bookworm`):**

    ```shell
    [[ "$(. /etc/os-release && echo $NAME)" != Raspbian* ]] && echo "ERROR: Raspberry Pi OS (32-bit) not detected, please use the Debian repos."
    echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/beta/Raspbian_12/ /' | sudo tee /etc/apt/sources.list.d/network:Meshtastic:beta.list
    curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:beta/Raspbian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_Meshtastic_beta.gpg > /dev/null
    sudo apt update
    sudo apt install meshtasticd
    ```

  </TabItem>
  <TabItem value="ubuntu" label={<><Icon icon="mdi:ubuntu" style={{ marginRight: "0.25rem" }} height="1.5rem" /> Ubuntu</>}>
    Ubuntu packages are provided via [<Icon icon="simple-icons:launchpad"/> Canonical Launchpad](https://launchpad.net/~meshtastic/+archive/ubuntu/beta).

    | Feature                  | Status |
    | ------------------------ | ------ |
    | 🔌 [USB Radio][USBRadio] | ✅     |
    | 🕸️ [SPI Radio][SPIRadio] | ✅     |
    | 📱 [MUI][MUI]            | ✅     |
    | 🌐 [Web][WebClient]      | ✅     |

    Supported: `plucky` (25.04), `noble` (24.04 LTS), `jammy` (22.04 LTS)

    **Install:**

    ```shell
    # Install requirements for add-apt-repository
    sudo apt install software-properties-common
    # Add Meshtastic repo
    sudo add-apt-repository ppa:meshtastic/beta
    # Install meshtasticd
    sudo apt install meshtasticd
    ```

    <details>
      <summary>Experimental builds</summary>

      These builds are provided without support, please **do not file issues** relating to Experimental builds.

      Experimental Support: `questing` (25.10)

      **Install:**

      > Install via the instructions above.
    </details>

  </TabItem>
  <TabItem value="fedora" label={<><Icon icon="mdi:fedora" style={{ marginRight: "0.25rem" }} height="1.5rem" /> Fedora</>}>
    Fedora packages are provided via [<Icon icon="mdi:fedora"/> Fedora COPR](https://copr.fedorainfracloud.org/coprs/g/meshtastic/beta/).

    | Feature                  | Status |
    | ------------------------ | ------ |
    | 🔌 [USB Radio][USBRadio] | ✅     |
    | 🕸️ [SPI Radio][SPIRadio] | ✅     |
    | 📱 [MUI][MUI]            | ✅     |
    | 🌐 [Web][WebClient]      | ✅     |

    Supported: Fedora `42`, Fedora `41`

    **Install:**

    ```shell
    # Add Meshtastic COPR repo
    sudo dnf copr enable @meshtastic/beta
    # Install meshtasticd
    sudo dnf install meshtasticd
    ```

    <details>
      <summary>Experimental builds</summary>

      These builds are provided without support, please **do not file issues** relating to Experimental builds.

      Experimental Support: Fedora `43`

      **Install:**

      > Install via the instructions above.
    </details>

  </TabItem>
  <TabItem value="epel" label={<><Icon icon="mdi:redhat" style={{ marginRight: "0.25rem" }} height="1.5rem" /> RedHat (EPEL)</>}>
    RedHat (EPEL) packages are provided via [<Icon icon="mdi:fedora"/> Fedora COPR](https://copr.fedorainfracloud.org/coprs/g/meshtastic/beta/).
    Built with Redhat's [UBI](https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image).

    | Feature                  | Status |
    | ------------------------ | ------ |
    | 🔌 [USB Radio][USBRadio] | ✅     |
    | 🕸️ [SPI Radio][SPIRadio] | ✅     |
    | 📱 [MUI][MUI]            | ✅     |
    | 🌐 [Web][WebClient]      | ✅     |

    Supported: EPEL `9`, EPEL `10`

    CentOS Stream, RedHat Enterprise Linux, AlmaLinux, Rocky Linux, and other [EPEL-supported](https://docs.fedoraproject.org/en-US/epel/getting-started/) distributions.

    **Install:**

    ```shell
    # Add Meshtastic COPR repos
    sudo dnf config-manager --set-enabled crb
    sudo dnf install epel-release
    sudo dnf copr enable @meshtastic/beta
    # Install meshtasticd
    sudo dnf install meshtasticd
    ```

  </TabItem>
  <TabItem value="docker" label={<><Icon icon="mdi:docker" style={{ marginRight: "0.25rem" }} height="1.5rem" /> Docker</>}>
    Docker containers are provided via [<Icon icon="mdi:docker"/> DockerHub](https://hub.docker.com/r/meshtastic/meshtasticd).

    Supported platforms: `linux/amd64`, `linux/arm64`, `linux/arm/v7`

    **Debian:**

    | Feature                  | Status |
    | ------------------------ | ------ |
    | 🔌 [USB Radio][USBRadio] | ✅     |
    | 🕸️ [SPI Radio][SPIRadio] | ✅     |
    | 📱 [MUI][MUI]            | ❌     |
    | 🌐 [Web][WebClient]      | ✅     |

    ```shell
    docker pull meshtastic/meshtasticd:beta-debian
    ```

    **Alpine:**

    | Feature                  | Status |
    | ------------------------ | ------ |
    | 🔌 [USB Radio][USBRadio] | ✅     |
    | 🕸️ [SPI Radio][SPIRadio] | ✅     |
    | 📱 [MUI][MUI]            | ❌     |
    | 🌐 [Web][WebClient]      | ❌     |

    ```shell
    docker pull meshtastic/meshtasticd:beta-alpine
    ```

    See: [Docker Usage](/docs/software/linux/usage/#usage-with-docker)

  </TabItem>
  <TabItem value="flatpak" label={<><Icon icon="simple-icons:flatpak" style={{ marginRight: "0.25rem" }} height="1.5rem" /> Flatpak</>}>
    Flatpaks are provided via [<Icon icon="simple-icons:flathub"/> FlatHub](https://flathub.org/apps/org.meshtastic.meshtasticd).

    | Feature                  | Status |
    | ------------------------ | ------ |
    | 🔌 [USB Radio][USBRadio] | ✅     |
    | 🕸️ [SPI Radio][SPIRadio] | ❌     |
    | 📱 [MUI][MUI]            | ✅     |
    | 🌐 [Web][WebClient]      | ❌     |

    Supported platforms: `x86_64`, `aarch64`

    Many distros support Flatpaks, see [FlatHub Setup](https://flathub.org/setup) for help getting started.

    **Install:**

    ```shell
    flatpak install flathub org.meshtastic.meshtasticd
    ```

    **Run:**

    ```shell
    flatpak run org.meshtastic.meshtasticd
    ```

  </TabItem>
  <TabItem value="openwrt" label={<><Icon icon="simple-icons:openwrt" style={{ marginRight: "0.25rem" }} height="1.5rem" /> OpenWrt</>}>

    | Feature                  | Status |
    | ------------------------ | ---------------------------------------------------- |
    | 🔌 [USB Radio][USBRadio] | ✅                                                   |
    | 🕸️ [SPI Radio][SPIRadio] | [⏸️](https://github.com/openwrt/packages/pull/26832) |
    | 📱 [MUI][MUI]            | ❌                                                   |
    | 🌐 [Web][WebClient]      | ✅                                                   |

    Supported OpenWrt Versions: `SNAPSHOT`, `24.10`, `23.05`, `22.03`

    Supported platforms:
    <details>
      <summary>all the platforms!</summary>
      - aarch64_cortex-a53
      - aarch64_cortex-a72
      - aarch64_cortex-a76
      - aarch64_generic
      - arm_arm1176jzf-s_vfp
      - arm_arm926ej-s
      - arm_cortex-a15_neon-vfpv4
      - arm_cortex-a5_vfpv4
      - arm_cortex-a7
      - arm_cortex-a7_neon-vfpv4
      - arm_cortex-a7_vfpv4
      - arm_cortex-a8_vfpv3
      - arm_cortex-a9
      - arm_cortex-a9_neon
      - arm_cortex-a9_vfpv3-d16
      - arm_fa526
      - arm_xscale
      - armeb_xscale
      - i386_pentium-mmx
      - i386_pentium4
      - loongarch64_generic
      - mips64_mips64r2
      - mips64_octeonplus
      - mips64el_mips64r2
      - mips_24kc
      - mips_4kec
      - mips_mips32
      - mipsel_24kc
      - mipsel_24kc_24kf
      - mipsel_74kc
      - mipsel_mips32
      - powerpc64_e5500
      - powerpc_464fp
      - powerpc_8548
      - riscv64_generic
      - x86_64
    </details>

    See [Meshtastic on OpenWrt routers](/docs/hardware/devices/openwrt/)

  </TabItem>
</Tabs>

[MUI]: /docs/configuration/device-uis/meshtasticui/
[WebClient]: /docs/software/web-client/
[USBRadio]: /docs/hardware/devices/linux-native-hardware/
[SPIRadio]: /docs/hardware/devices/linux-native-hardware/
